package com.ruoyix.flowable.domain.bo;

import com.ruoyix.common.core.validate.AddGroup;
import com.ruoyix.common.core.validate.EditGroup;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.*;
import java.util.Date;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyix.common.core.domain.BaseEntity;

/**
 * 流程定义业务对象 bpm_process_definition
 *
 * @author ruoyi
 * @date 2023-11-23
 */

@Data
@EqualsAndHashCode(callSuper = true)
public class BpmProcessDefinitionBo extends BaseEntity {

    /**
     * 流程定义id
     */
    @NotBlank(message = "流程定义id不能为空", groups = { EditGroup.class })
    private String id;

    /**
     * 流程定义名称
     */
    @NotBlank(message = "流程定义名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String processDefinitionName;

    /**
     * 流程定义标识key
     */
    @NotBlank(message = "流程定义标识key不能为空", groups = { AddGroup.class, EditGroup.class })
    private String processDefinitionKey;

    /**
     * 流程定义挂起或激活 1激活 2挂起
     */
    @NotNull(message = "流程定义挂起或激活 1激活 2挂起不能为空", groups = { AddGroup.class, EditGroup.class })
    private Long processDefinitionState;

    /**
     * 流程xml名称
     */
    @NotBlank(message = "流程xml名称不能为空", groups = { AddGroup.class, EditGroup.class })
    private String xmlName;

    /**
     * 流程部署id
     */
    @NotBlank(message = "流程部署id不能为空", groups = { AddGroup.class, EditGroup.class })
    private String processDeploymentId;

    /**
     * 流程部署时间
     */
    @NotNull(message = "流程部署时间不能为空", groups = { AddGroup.class, EditGroup.class })
    private Date processDeploymentTime;


    /**
     * 流程版本
     */
    private String processDefinitionVersion;

    /**
     * 描述
     */
    @NotBlank(message = "描述不能为空", groups = { AddGroup.class, EditGroup.class })
    private String description;



}
